<!DOCTYPE html>
<html lang="en">
<head>
    <#include "WEB-INF/view/_frag/_meta.ftl">
    <title>Nature FrameWork</title>
    <#include "WEB-INF/view/_frag/_jscss.ftl">
</head>
<body>
<nav class="navbar navbar-inverse navbar-fixed-top">
    <div class="container">
        <div class="navbar-header">
            <a class="navbar-brand" href="#">Nature FrameWork
                <small><em>&nbsp;&nbsp;not only easy and fast.</em></small>
            </a>
        </div>
        <div class="navbar-right">
		</div>
    </div>
</nav>

<div class="jumbotron">
    <div class="container">
        <h1>Nature FrameWork</h1>
        <p>
        &nbsp;&nbsp;&nbsp;&nbsp;Nature-Framework是一个以自由为理念，以易用，代码简洁，开发快速，功能强大，易扩展，低耦合为目标，适用于快速开发的轻量级MVC+ORM框架。无getter/setter方法，无xml配置，包括源码的jar仅280KB。
        </p>
        <h2>Nature-framework主要特点</h2>
        <p>
			&nbsp;&nbsp;&nbsp;&nbsp;完整的MVC支持，功能齐全，简单易用；
			模块结构自然：Control，Service，Model；
			简单易用的依赖注入ioc；
			功能强大的拦截器intercepter；
			后台验证器validator；
			支持国际化i18n；
			防重复提交令牌token；
			灵活易用的Ecache本地缓存，强大的Redis分布式缓存；
			支持c3p0和druid数据源；
			支持一个项目多个数据库连接；
			数据库支持Mysql，Microsoft SQL Server，Oracle，Sqlite等；
			不得不说的事务控制，多数据事务控制；
			拥有强大的插件扩展；
			支持强大灵活的Restful风格请求；
			WebService服务；
			支持分布式的任务调度；
			基于Freemark和jsp的前端权限验证；
        </p>
        <footer class="pull-right text-muted">
            <em>不会写框架的程序员不是个好男人———尼古拉斯·赵四</em>
        </footer>
        <div class="clearfix"></div>
        <p class="text-center"><a class="btn btn-danger btn-lg" href="user/list" role="button">立即查看实例 &raquo;</a></p>
    </div>
</div>

<div class="container">
    <div>
        <blockquote>
            <h2>实体类</h2>
        </blockquote>
        <p>1、实体类，无需GET/SET方法，只需声明数据库字段的名称</p>

        <p> 2、使用注解控制指定主键@id,支持ADDSELF（数据库自增长）、UUID（框架维护）、ASSIGN（程序员指定id）</p>

        <p> 3、@Type：按照JAVA语言的基本类型进行设定，无需考虑数据库的字段，还支持默认值，长度设定等，简单快捷</p>
    </div>
    <div class="text-info">
        <blockquote>
            <h2>服务类</h2>
        </blockquote>
        <p> 1、服务类，为了开发简单可以继承框架中的NatureService（非必需），添加@Service注解即可</p>

        <p> 2、事物控制可以通过@Tx进行急速实现</p>

        <p> 3、如果某些业务多读少写则建议使用缓存，使用方法只需传入缓存名称即可，如果缓存有配置则使用，否则使用默认配置。</p>

        <p> 4、所有业务逻辑建议放在Service层</p>
    </div>
    <div class="text-success">
        <blockquote>
            <h2>控制类</h2>
        </blockquote>
        <p> 1、创建控制层继承NatureCtrl类并增加@Ctrl注解即可</p>

        <p> 2、类@Ctrl的namespace是控制层的命名空间，所有本控制层的请求都要通过namespace</p>

        <p> 3、属性@Inject注解是注入Service实例</p>

        <p> 4、方法@Ask注解是对方法的映射，如果不写url则默认映射为方法名；与namespace共同组成请求路径/namespace/list</p>

        <p> 5、返回支持直接返回页面"xxx.jsp",返回方法"xxx",返回JSON数据 JsonData,返回下载文件FileData等，绝对的简单快捷</p>

        <p> 6、在控制层需要页面传值的只需声明public类型变量即可，无需冗长的GET/SET

        <p>

        <p> 7、如需上传文件，控制层直接声明File类型变量即可，支持多文件集合上传，就像接受普通变量一样简单</p>

    </div>
    <hr>
   <#include "WEB-INF/view/_frag/_footer.ftl">
</div>
<!-- /container -->
</body>
</html>